#!/bin/bash

# 定义菜单项
options=("选项1" "选项2" "选项3" "退出")

# 光标位置
selected=0

# 捕捉上下键和回车键
while true; do
  # 清屏
  clear

  # 显示菜单
  for i in "${!options[@]}"; do
    if [ $i -eq $selected ]; then
      echo -e "\033[1;32m> ${options[$i]}\033[0m"  # 高亮显示选中的菜单项
    else
      echo "  ${options[$i]}"
    fi
  done

  # 读取用户输入
  read -rsn1 input
  case $input in
    $'\x1b')  # 捕获到转义序列（上下箭头）
      read -rsn2 input  # 读取后续的两个字符
      if [ "$input" == "[A" ]; then
        ((selected--))
        if [ $selected -lt 0 ]; then
          selected=$((${#options[@]} - 1))  # 到达顶部后循环到最后一个
        fi
      elif [ "$input" == "[B" ]; then
        ((selected++))
        if [ $selected -ge ${#options[@]} ]; then
          selected=0  # 到达底部后循环到第一个
        fi
      fi
      ;;
    "")  # 回车键
      case ${options[$selected]} in
        "选项1")
          echo "执行命令1"
          # 在这里插入你要执行的命令
          ;;
        "选项2")
          echo "执行命令2"
          # 在这里插入你要执行的命令
          ;;
        "选项3")
          echo "执行命令3"
          # 在这里插入你要执行的命令
          ;;
        "退出")
          echo "退出"
          break
          ;;
      esac
      read -rsp $'按任意键返回菜单...\n' -n 1
      ;;
  esac
done
